package com.kpx.app.utils.uiutils;

import com.amap.api.maps.AMapUtils;
import com.amap.api.maps.model.LatLng;

/**
 * 距离相关
 */
public class DistanceUtil {
    private static DistanceUtil instance;

    private DistanceUtil() {
    }

    public static DistanceUtil getInstance() {
        if (instance == null) {
            synchronized (DistanceUtil.class) {
                instance = new DistanceUtil();
            }
        }
        return instance;
    }

    /**
     * 格式化距离
     * 1 km 内，展示  x m
     * 1 km 到 1000km 展示 xkm
     * 1000km 以外：展示 千里之外
     */
    public String getFormatDistance(double distance) {
        String METER = "米";
        if (distance < 1000) {
            return (int) distance + "m";
        } else if (distance >= 1000) {
            return (int) (distance / 1000) + "km";
        } else {
            return "千里之外";
        }
    }

    /**
     * 已知两个坐标点，计算直线距离，单位米
     *
     * @param startLatlng
     * @param endLatlng
     * @return
     */
    public float calculateLineDistance(LatLng startLatlng, LatLng endLatlng) {
        if (null != startLatlng && null != endLatlng) {
            return AMapUtils.calculateLineDistance(startLatlng, endLatlng);
        }
        return 0;
    }

}
